"""7.3 【测试工具】Inspector服务端stdio协议
"""
#导入mcp依赖包
from mcp.server.fastmcp import FastMCP
#创建mcp实例
mcp = FastMCP("Tool MCP Server")

@mcp.tool()
def add_tool(x:int,y:int):
    """
    有两个数字相加的加法工具
    :param x: 第一个数字
    :param y: 第二个数字
    :return: 两个数字的和
    """
    return x+y

@mcp.tool()
def sub_tool(x:int,y:int):
    """
    有两个数字相减的减法工具
    :param x: 第一个数字
    :param y: 第二个数字
    :return: 两个数字的差
    """
    return x-y


#创建浆糊
@mcp.resource(
    uri="file:///query/book.txt",
    name="book",
    description="查询书籍信息",
    mime_type="text/plain",
)
def query_book():
    """
     读取本地文件books.txt
     """
    with open("books.txt", "r",encoding="utf-8") as f:
        content = f.read()
        return content


@mcp.prompt()
def notify_prompt(notify:str):
    '''
    这个方法是一个提示方法，总结概要信息
    : notify: 文章内容
    : return: 提示信息
    '''
    return {
        "role":"user",
          "content": f"""
                    这是活动通知内容：“{notify}”，请按标准格式整理通知要点，规则如下：
                    提取活动关键信息。
                    每个信息点按以下格式总结：
                    活动主题：需体现活动核心内容与目的
                    参与对象：明确可参加的人群或范围
                    时间安排：活动开始至结束的具体时段
                    举办地点：活动实际开展的地址
                    报名方式：参与活动的申请途径及截止时间
                    总结语言需简洁明了，避免使用复杂句式。
         """
    }


if __name__ == "__main__":
    print(" MCP Server Start!")
    #启动mcp服务:有两种协议，分别是stdio和tcp，stdio模式下，transport参数必须为stdio
    mcp.run(transport="stdio")